Skip to content

Refactoring#51

Draft
dufourc1 wants to merge 266 commits into
mainfrom
refactoring
Draft

Refactoring#51
dufourc1 wants to merge 266 commits into
mainfrom
refactoring

Conversation

@dufourc1

@dufourc1 dufourc1 commented Feb 2, 2026

Copy link
Copy Markdown
Member

Major refactoring to modernize the codebase, add support for decorated graphs (weighted, categorical edges), and improve documentation.

Core Architecture

  • New modular structure: Replaced monolithic implementations with SymArray.jl (fast symmetric arrays), GreedySuffStats.jl, and clean API layer
  • Preprocessor system: Unified edge type handling (binary, categorical, continuous) via preprocessor/
  • Pseudo sufficient statistics framework: Generic abstraction for different edge distributions in pseudo_suff_stats/
  • Removed: src/old/, deprecated src/UI.jl, legacy src/assignments/

Extensions

  • PythonOptimalTransport: srGW and fngw algorithms for partition alignment
  • BootstrapExt, LightMCExt, MakieExt: Optional functionality via weak dependencies

API Changes

# New high-level functions for different edge types
nethist_binary(A, k)      # Binary networks
nethist_categorical(A, k) # Discrete edge values
nethist_continuous(A, k)  # Real-valued edges

# Graphons.jl integration (re-exported)
# Hungarian algorithm for label alignment
# OT-based partition alignment methods

Documentation

  • Added tutorials: simple graphs, weighted networks, multiplex networks, temporal networks
  • Custom sufficient statistics example
  • Removed outdated internals/rules documentation

Infrastructure

  • Dependabot configuration
  • Benchmark PR workflow
  • CondaPkg.toml for Python dependencies

Copilot AI mentioned this pull request Feb 2, 2026
@SDS-EPFL SDS-EPFL deleted a comment from Copilot AI Feb 2, 2026
@codecov

codecov Bot commented May 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 17.05640% with 603 lines in your changes missing coverage. Please review.
✅ Project coverage is 17.05%. Comparing base (095a2c8) to head (99347d8).

Files with missing lines Patch % Lines
ext/PythonOptimalTransport/srGW.jl 0.00% 246 Missing ⚠️
src/GreedySuffStats.jl 0.00% 74 Missing ⚠️
src/utils/utils_node_labels.jl 0.00% 34 Missing ⚠️
src/api.jl 0.00% 32 Missing ⚠️
ext/LightMCExt.jl 0.00% 26 Missing ⚠️
src/pseudo_suff_stats/generic.jl 0.00% 26 Missing ⚠️
src/distributions/hist_dist.jl 0.00% 24 Missing ⚠️
src/config_rules/stop_rule.jl 0.00% 21 Missing ⚠️
ext/PythonOptimalTransport/alignment.jl 0.00% 17 Missing ⚠️
src/preprocessor/categorical.jl 0.00% 17 Missing ⚠️
... and 11 more
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #51       +/-   ##
===========================================
- Coverage   81.93%   17.05%   -64.88%     
===========================================
  Files          15       21        +6     
  Lines         465      727      +262     
===========================================
- Hits          381      124      -257     
- Misses         84      603      +519     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant